
package stack.be.touch.utils;

public final class Log {

	public static boolean isDebuggable = true;
	
    /**
     * コンストラクタ。
     */
    private Log() {

    }

    /**
     * 詳細レベルのログを出力します。
     * 
     * @param tag タグ
     * @param msg 出力するメッセージ
     */
    public static void v(String tag, String msg) {
        if (isDebuggable) {
            android.util.Log.v(tag, msg);
        }
    }

    /**
     * 警告レベルのログを出力します。
     * 
     * @param tag タグ
     * @param msg 出力するメッセージ
     */
    public static void w(String tag, String msg) {
        if (isDebuggable) {
            android.util.Log.w(tag, msg);
        }
    }

    /**
     * デバッグレベルのログを出力します。
     * 
     * @param tag タグ
     * @param msg 出力するメッセージ
     */
    public static void d(String tag, String msg) {
        if (isDebuggable) {
            android.util.Log.d(tag, msg);
        }
    }

    /**
     * エラーレベルのログを出力します。
     * 
     * @param tag タグ
     * @param msg 出力するメッセージ
     */
    public static void e(String tag, String msg) {
        if (isDebuggable) {
            android.util.Log.e(tag, msg);
        }
    }

    /**
     * 情報レベルのログを出力します。
     * 
     * @param tag タグ
     * @param msg 出力するメッセージ
     */
    public static void i(String tag, String msg) {
        if (isDebuggable) {
            android.util.Log.i(tag, msg);
        }
    }

    public static void printCallerName() {
        System.out.println("---------------"
                + Thread.currentThread().getStackTrace()[3].getMethodName());
    }

    public static void printCallerName(String message) {
        System.out.println("---------------"
                + Thread.currentThread().getStackTrace()[3].getMethodName() + ":" + message);
    }
}
